function isBlank(value) {
    var trimValue = $.trim(value);
    return trimValue == "";
}

function isNotBlank(value) {
    return !isBlank(value);
}

function isNotNumber(value) {
    return isBlank(value) || isNaN(value);
}


function notEmpty(obj) {
    if (isBlank(obj.value)) {
        showTip($(obj), "请填写内容！");
        return false;
    }
    return true;
}

function isNumber(obj) {
    var val = $.trim(obj.value);
    if (isNaN(val)) {
        showTip($(obj), "请填写数字！");
        return false;
    }
    return true;
}

function notNegative(obj) {
    var val = $.trim(obj.value);
    if (isNaN(val) || parseFloat(val) < 0) {
        showTip($(obj), "请填写非负数！");
        return false;
    }                                                                        
    return true;
}

function isUnsignInteger(value) {
    var trimValue = $.trim(value);
    var reg = /^\d+$/;
    return reg.test(trimValue);
}

function isDate(value) {
    var trimValue = $.trim(value);
    var reg = /^\d{4}-\d{2}-\d{2}$/;
    return reg.test(trimValue);
}

function date(obj) {
    if (!isDate(obj.value)) {
        showTip($(obj), "无效的日期格式, 日期格为[yyyy-MM-dd]！");
        return false;
    }
    return true;
}

function unsignInteger(obj) {
    if (!isUnsignInteger(obj.value)) {
        showTip($(obj), "请填写正整数！");
        return false;
    }
    return true;
}

function pointInElement(x, y, e) {
    var left = e.offset().left;
    var top = e.offset().top;
    var right = e.offset().left + e.width();
    var bottom = e.offset().top + e.height();

    if (x < left || x > right || y < top || y > bottom) {
        return false;
    }
    return true;
}


function validateInputs(e) {
    var inputs = e.find("input[validator]");
    for (var i = 0; i < inputs.length; i++) {
        var validators = $(inputs[i]).attr("validator").split("_");
        for (var j = 0; j < validators.length; j++) {
            if (!eval(validators[j])(inputs[i])) {
                return false;
            }
        }
    }
    return true;
}